<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>作用域</title>
</head>

<body>
  <script>
    // 1. 作用域：全局作用域 和 局部作用域
    // 1.1 全局作用域 在script标签中定义的 或者 在单独的js文件中定义的
    // let num = 100
    // console.log(num)

    // function fn() {
    //   console.log(num)
    // }
    // fn()

    // 1.2 局部作用域 在函数内部定义的 或者 {}中定义的
    // -----------在函数内部定义的
    // function fn() {
    //   let num = 100
    //   console.log(num)
    // }
    // fn()

    // console.log(num) //  num is not defined

    // ----------{}中定义的
    // {
    //   let num = 999
    //   console.log(num)
    // }
    // console.log(num) // num is not defined

    // for (let i = 1; i <= 5; i++) {
    //   console.log(i)
    // }

    // console.log(i) //  i is not defined

    // 2. 注意点
    // 2.1 在函数内部给一个没有定义的变量赋值, 会把这个变量当做全局变量(强烈不推荐)
    // function fn() {
    //   num = 10086
    //   console.log(num)
    // }
    // fn()
    // console.log(num)

    // 2.2 函数内部的形参也可以看做是局部变量
    function sum(num1, num2) {
      console.log(num1, num2)
    }
    sum(100, 200)
    console.log(num1, num2) // num1 is not defined
  </script>
</body>

</html>